home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PCMania 64
/
PCMania CD64_1.iso
/
phy
/
phy006
/
phy.doc
< prev
next >
Wrap
Text File
|
1997-12-21
|
23KB
|
417 lines
_____________________________________________________
PhyMosys Magazine Graphic Reader (by navi/PhyMosys)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. Requisitos mínimos para usar el browser.
Pues necesita lo normal: un 80386 o superior, una tarjeta gràfica SVGA y,
si quieres oir música, una SB o GUS. A parte de esto, necesitarás tener
libres unos 200Kb de RAM si no usas el sonido o unos 500Kb si quieres oir
la música además de unos cuantos megas de memoria XMS libres (con 6Mb libres
seguro que funciona todo).
En lo que respecta a los drivers que deben estar cargados, estos son
principalmente 2: el del mouse i el HIMEM.SYS. Si tu tarjeta de video no
funciona correctamente, tal vez necesites otro driver para cargar las
funciones VESA (como el UNIVESA, por ejemplo).
2. Navegar por el browser.
Necesariamente necesitas tener cargado el driver del ratón para poder
seleccionar los articulos. Para ello, al entrar en la pantalla principal,
deberás pinchar sobre unos de los iconos de la parte izquierda y así se
abrirá uno de los menús en la parte de la derecha. Si pulsas ahora sobre
cualquier icono de la derecha accederás al browser própiamente dicho donde
podrás leer el contenido de dicho artículo y donde el sistema de manejo es
un poco diferente. Desde la propia pantalla principal, podrás volver al
DOS si pulsas sobre el icono EXIT, pulsas la tecla ESC o simplemente
presionas el botón derecho del ratón.
Cuando has pulsado sobre el icono de un artículo, entrarás en la pantalla
de lectura donde el manejo podrás realizarlo tanto con el ratón como con el
teclado. Podrás pulsar las teclas AvPag y RePag para avanzar y retroceder
una página respectivamente, los cursores arriba y abajo para avanzar y
retroceder lentamente y las teclas Inicio y Fin para moverse de forma más
rápida. Con el ratón las cosas se simplifican: si te vas hacia la parte de
arriba o de abajo del monitor y presionas el botón izquierdo avazarás o
retrocederas a una velocidad directamente proporcional a la distancia al
borde. Para regresar al menú principal, puedes tanto pulsar el botón
derecho del ratón como presionar la tecla ESC.
3. Forzar los modos gráficos.
Si la autodetección del chipset de la placa falla, lo mejor es tratar de
forzar al programa con el modo gráfico correspondiente a la tarjeta que se
vaya a usar. Para ello será necesario que conozcas el fabricante y/o modelo
de placa que lleva tu ordenador y luego hacerselo saber al programa mediante
una opción en la línea de comandos. Esta opción comieza con un guión '-',
luego va el comando, que en este caso será 'm', y termina con un número de
1 o 2 cifras que representará el número asignado por el programador y que
podrás consultar en la tabla.
Por ejemplo, para forzar la detección de la tarjeta "Cirrus CL-GD5422",
se tendria que escribir al entrar en el programa la opción -m7. Es muy
importante que entre la letra (comando) y el número de modo no haya ningún
espacio en blanco, cosa que provocaria una incorrecta inicialización. Por
cierto, al programar esto, no he probado con todas las tarjetas esas si
funcionaba el visualizador, pero si la información que he conseguido de la
lista de interrupciones de Ralf Brown no es incorrecto, deberia funcionar
a la perfección. La tabla de tarjetas con su número correspondiente es la
siguiente:
Modo Tarjeta
---- -------
00 Tecmar VGA/AD
01 Realtek RTVGA
02 Avance Logic AL2101
03 VEGA VGA
Orchid chipset
STB, Genoa, Sigma
TSeng ET3000/4000
04 Oak VGA (OTI)
05 Genoa 6400
06 Logix, ATI Prism Elite
Maxxon, SEFCON TVGA, Intec
Zymos Poach, Hi Res 512
Trident TVGA 8800
07 Paradise VGA
AST VGA Plus, NCR 77C22
Compaq VGA, Dell VGA
HP D1180A
AT&T VDC600
NCR 77C22
WD90C
Diamond Speedstar, 24X
Cirrus CL-GD5420/5422/5426
08 Ahead A, Ahead B
09 ATI VGA Wonder, VGA Wonder+
ATI Ultra 8514A, ATI XL
10 Video 7 V-RAM VGA
11 Cardinal, C&T chipset
A parte de estos modos, puede que tu tarjeta soporte el driver VESA o
que lo hayas instalado por software posteriormente. En este caso puedes
recurrir a él y forzar la detección del driver VESA y la inicialización
y cambio de bancos mediante él con la opción -v. No creo que tengas ningún
problema con esta forma de actuar, pero si puedes entra al programa con
la autodetección o la detección manual de tu tarjeta concreta pues será
mucho más rápido.
4. Forzar el cambio de banco.
A parte de la inicialización del modo gràfico, en las tarjetas SVGA hay
otro problema bastante grande: el cambio de bancos. Básicamente de lo que
se trata es de que cuando la zona de memoria RAM de video que se mapea en
RAM normal no cabe en un segmento (64 Kb) hay que hacer un intercambio de
páginas o, mejor dicho en este caso, bancos.
El problema de esto, que puede parecer trivial a primera vista, es que
cada fabricante de tarjetas usa un modo distinto de hacer este cambio de
banco, teniendo que hacer una rutina específica para cada tipo de SVGA.
El método por el que se detecta la inicialización del modo gráfico de la
tarjeta es bastante seguro, pero el que detecta el método por el que hay
que cambiar de banco.. mejor no hablar. Para que tengas el menor número
de problemas posible, tambien he incluido una forma de forzar el método
de cambio de banco.
La opción que hay que escribir para forzar la detección, es la del
comando 'b' que como para la inicialización se usa así: -bXX, donde XX
es el número que aparece junto con la tabla de ahí abajo. Elige según el
modelo que más se aproxime al que dispones y sino das en el blanco ve
probando con otros y recuerda que si tienes cualquier problema siempre
puedes enviarme un e-mail o carta pasandome todos los datos de tu tarjeta
que conozcas y tal y tal... vamos con la tablita:
Método Tarjeta
------ -------
00 Autodetección
01 Realtek
02 TSeng ET3000
03 TSeng ET4000
04 Chipset Oak
05 Chipset Genoa
06 Trident
07 Cirrus Logic
08 Ahead A
09 ATI (tipo 1)
10 Video 7
11 Chips & Tech
12 Ahead B
13 ATI (tipo 2)
14 ATI (tipo 3)
15 Compaq
16 NCR
17 Paradise
18 Diamond
En el caso de que dispongas de un chipset ATI deberias probar todos los
modos de cambio de banco ya que cada uno de los 3 que hay (9, 13, 14) son
para una de las tarjetas de esta firma. Por ejemplo, un amigo mio tiene
una ATI Wonder y sólo le funciona el browser con el modelo 3 (-b14). De
todas formas, yo no puedo asegurar que nada de lo que ha dicho aquí fun-
cione, yo sólo me he limitado a buscar información de las SVGA y ha hacer
especulaciones de sobre como se programan viendo el resultado, satisfac-
torio siempre en mi Cirrus.
5. Sobre VESA
Como seguro ya sabes, eso que se llama VESA y que siempre se suele oir
cuando donde se habla de tarjetas SVGA, es una especie de estandar en la
fabricación de estas tarjetas para que el lio que armaron los fabricantes
creando cada uno su própio estandar se solucione un poco y a los programa-
dores les resulte más sencillo trabajar con tarjetas avanzadas. Lo que se
hizo fue unificar criterios y elegir una forma estandar de inicializar unos
modos estandar y hacer unas operaciones estandar. ¿Y que se consiguió con
tanto "estandar"? Pues bien, almenos que las cosas se vieran en todos los
ordenadores con SVGA aunque a coste de perder mucha, mucha velocidad.
Seguramente tu tarjeta será compatible VESA o algo parecido (a no ser que
sea muy vieja o te hayan timado) y gracias a ello podrás acercarte al mundo
SVGA, pero cabe hacer un par de distinciones: ¿la tarjeta soporta de forma
nativa las funciones VESA o necesita un driver externo renovable? Si tienes
una SVGA que lleva todo lo del VESA implementado en ROM, salvarás un poco
de memoria RAM, pero a cambio perderás la compatibilidad con las nuevas
especificaciones VESA, pero no te preocupes, este browser funciona a partir
de la primera versión. Cabe la posibilidad de que tengas que instalar un
pequeño driver en memoria para poder acceder a las funciones VESA y no
tengas ese driver bien porque no te lo dieron en la tienda, bien porque lo
hayas perdido. Tampoco pasa nada, tanto para unos como para otros existe
un driver universal que se distribuye por algunos CD-ROMs de revistas
llamado "UNIVESA" que detecta la tarjeta de video e instala el driver VESA
adecuado a ella, búscalo y envianos un mail si no lo encuentras.
Para activar la compatibilidad VESA en el browser, debes activar la
opción -v como ya sabrias, pero es muy importante que esa opción sea la
única que aparezca ya que si apareciese una -b3, por ejemplo, esta tendria
mayor preferencia y desactivaria la compatibilidad VESA. Como siempre, si
tienes algún problema con el soporte VESA enviame un e-mail explicandomelo
y con todos los datos posibles de la tarjeta de que dispones.
Además de todo esto, podemos forzar la granularidad del modo gráfico VESA
(y sólo VESA, no podremos hacerlo con un modo normal de nuestra tarjeta).
Para ello, hay un switch que pasado en la línea de comandos, acepta 2 cifras
(y sólo 2) que indican el tamaño en Kb que tendrá la granularidad de la SVGA.
Se escribiria algo así como -g04 para indicar una granularidad de 4 Kb. Si
tu SVGA no funciona bien y ves los gráficos como cortados con un cuchillo y
pegados luego a tiras, casi seguro que se trata de la granularidad... si
sabes cual es la de tu tarjeta, no hay problema, sino, prueba alguno de los
típicos: 4, 8, 16, 64...
6. Opciones de configuración del sonido.
El sistema de sonido que he usado ha sido desarrollado por Lord Excess
y es freeware. Aunque ya tiene un tiempecito y sólo soporta hasta la SB Pro,
es el único player para 8 canales que he encontrado que se pueda usar
directamente desde ensamblador (aparte del STMIK o algo así de Future Crew
y que no uso porque me da problemas con mi tarjeta). De todas formas no
hay que desesperarse si pasa algo raro, ahora mismo y espero que para el
próximo número voy a comenzar la programación de un player en assembler
con soporte de S3M de hasta 32 canales, 16 bits estereo e interpolación
lineal por software que solucionará todos estos problemas ya que entrará
en el browser de forma nativa y no como un módulo aparte.
Las opciones que sirven para configurar el sonido son estas:
-n -> Evita la generación de sonido, si se te cuelga, pruebalo.
-i<num> -> Selecciona la IRQ que le digamos.
-d<num> -> Selecciona el canal de DMA (8 bits!) que le digamos.
-p<num> -> Selecciona el puerto base que le digamos.
-t<num> -> Selecciona la tarjeta de sonido que le digamos.
Todas estas opciones (excepto la -n) recibe un parámetro que debe ser un
número decimal entre el 0 y el 9 y que debe estar pegadito a la letra.
El puerto se lo indicaremos con un único número que serà la desplazamiento
desde el puerto 200h en hexadecimal, es decir, serà la X en 2X0h (para el
220h es 2, para el 230h es 3, etc). La tarjeta es un número del 0 al 3:
0 -> Autodetección (invalida las demás opciones)
1 -> Sound Blaster 1.0
2 -> Sound Blaster Pro
3 -> Gravis UltraSound
Por ejemplo, si se quiere forzar la detección de una SB Pro con la IRQ 5,
DMA 1 y puerto 220h y además forzar el uso de las funciones VESA, se
deberia escribir la siguiente línea de comandos:
PHY.EXE -t2 -i5 -d1 -p2 -v
7. Errores reportados por el browser.
A la hora de detectar errores no he ahorrado ni un sólo byte ya que creo
que así el aspecto de seguridad y fiabilidad se ve muy mejorado. Si, por
ejemplo, no hubiese añadido una detección de errores en la memoria XMS,
cada vez que se cometiera uno de estos errores el ordenador se quedaria
colgado. Si además esto ocurriera nada más arrancar el programa, el usuario
podria pensar que el error está en la detección de la SVGA, por ejemplo,
y volverse loco probando opciones cuando lo que en realidad sucede es que
no ha cargado el HIMEM.SYS.
A continuación está la lista de todos los errores que se pueden encontrar
junto a una pequeña explicación y como solucionarlo. Si encontraras algún
error sin solución y no pudieras hacer funcionar el browser a la perfección,
te agradeceria que me enviaras un mail o carta explicandome el error que
te da y todo lo que creas conveniente (ordenador, tarjeta gràfica, SO, etc).
Por cierto, el 'errorlevel' que se devuelve se corresponde con el numerito
que lleva cada mensaje.
7.1. No hay tarjeta gráfica SVGA
Se produce cuando no se detecta correctamente la tarjeta SVGA o cuando
realmente no hay ninguna SVGA instalada en el sistema. Los requisitos
mínimos de la tarjeta de video para poder funcionar correctamente son
tener 512Kb de VRAM y tener instalado el driver VESA o equivalente.
Soluciones: comprarte una SVGA, instalar el UNIVESA (ver sección
'Sobre VESA'), ampliar la memoria de video, probar las distintas
opciones de arranque (comandos de línea, ver por ahí arriba), salir
de Güindous.
7.2. No hay memoria suficiente.
Se produce cuando se le pide al sistema (DOS) memoria convencional
(por debajo de 1Mb) para colocar algún gráfico, fichero, etc. y el SO
te dice que no queda memoria libre. Supongo que este error no ocurrirá
muy freqüentemente ya que el browser necesita menos de 100 Kb de memoria
libre para funcionar ya que todo lo que ocupa mucho espacio se lo lleva
a memoria superior. Aunque tambien hay que contar con el sonido, si
tienes una SB el gasto de memoria puede subir bastante (trataremos de
que no sea superior a los 500Kb).
Soluciones: comprarte una ampliación de memoria (el tiempo de los 128K
ya pasó, lo siento), quitar programas residentes innecesarios, no poner
música, salir de Güindous.
7.3. Falta algún fichero importante.
Normalmente pasa cuando estas tratando de tomarle el pelo al browser
cambiando ficheros "para ver que pasa". Si el browser encuentra algún
fichero que no es como se lo esperaba o que simplemente no esta, avisará
con este error.
Soluciones: no borrar ficheros raros, copiar a disco duro el fanzine,
comprar un nuevo disco duro, salir de Güindous.
7.4. Error indeterminado en el browser.
¿Te ha salido esto? Upss! pues... indeterminado es... INDETERMINADO,
¿que te voy a decir? Es un error que no se sabe de donde viene, como se
produce, ni porque. A mi nunca me ha salido y si te saliese a ti, creo
que no lo podria solucionar si no me envias el PC, así que si quieres...
El único error indeterminado lógico que suele aparecer es cuando no has
cargado el driver del ratón antes de entrar en el browser.
Soluciones: comprarte un nuevo ordenador, cargar el driver del ratón,
salir de Güindous.
7.5. Error en la memoria XMS.
Mi error favorito. Se suele producir cuando te quedas sin memoria XMS
o cuando no has instalado el controlador HIMEM.SYS en el sistema. La
memoria XMS se usa sobretodo a la hora de leer los articulos ya que se
almacenan allí por lo que este error se suele reportar en el momento
de cargarlos. La mayoria de articulos se pueden leer con 4Mb libres de
memoria XMS, pero hay algunos excesivamente largos que necesitaran algo
más (la cifra ideal seria a partir de 8Mb con unos 6 libres).
Soluciones: comprarte una ampliación de RAM, quitar el SmartDrive,
quitar residentes que consuman XMS, cargar el HIMEM.SYS, salir de
Güindous.
7.6. Que has hecho con el fichero DATOS.MAD ???.
Vaya! un error curioso... Se relaciona con el error 3 ya que sucede
cuando se modifica el fichero DATOS.MAD que por la extensión se adivina
que se trata de un fichero de almacenamiento masivo que contiene los
gráficos y demás cosas del browser y que alguien ha tratado de modificar
sin saber lo que hacia. El error tambien puede deberse a una mala
descompresión del fichero que traia la Phy, pero no creo...
Soluciones: no modificar el fichero DATOS.MAD, copiar a disco duro el
fanzine, reinstalar la Phy, salir de Güindous.
7.7. Error en la inicialización del sonido.
No puedo cargar el fichero de sonido.
Estos dos errores corresponden al sistema de sonido que no ha sido
programado por mi y del cual tengo sérias dudas de que funcione de la
forma más correcta posible. Si te aparece cualquiera de estos errores
lo mejor y más cómodo es quitar el sonido y esperar hasta que cambie
el player por uno que programaré más adelante.
Soluciones: no modificar ningún fichero, probar las opciones de
configuración, comprarte una nueva tarjeta de sonido, salir de Güindous.
8. Algunos datos técnicos.
El browser ha sido programado íntegramente en assembler (marca de la
casa ;-) y ha costado una semana "y pico" dedicándole unas 4 horas diarias
(total, sobre las 40 horas de sudoroso esfuerzo veraniego :). Usa un modo
SVGA que tiene una muy buena relación calidad/rendimiento como es el
640x480x8bits con lo que los pixels son cuadrados y no rectangulares como
sucedia con el modo X anteriormente usado en otras versiones del browser
(un modo X muy raro de 640x480 o algo así)
A parte de la gran mejora en el aspécto gráfico, se ha añadido el toque
sonoro que me estabais pidiendo desde hacia mucho tiempo. No queria incluir
un sistema de sonido todavia ya que no estaba programado por nadie de
PhyMosys, pero al final he cedido y ahí lo teneis, pero ya he comenzado a
programar el que será el nuevo Sound System :).
Tambien aparece una nueva figura que estaba muy demandada: el ratón.
Como el modo gráfico me lo permitia, decidí hacer realidad la idea que
tenia desde el principio para el browser, pero que los distintos modos de
baja resolución que han habido me habian impedido: meter iconos; ¿y que
mejor para seleccionar iconos que un ratón? Como los drivers del roedor no
implementan modos SVGA, la cosa ha sido un poco más complicado de lo que
suele suceder ya que he tenido que programar medio driver para poder así
introducir un puntero en pantalla.
El browser ha sido programado desde 0 ya que no he usado la libreria
GRAPH como en anteriores ocasiones ya que la pobre no es capaz de soportar
modos SVGA (tendré que sacar la versión 3.0 dentro de poco). El sistema
que se usaba anteriormente como kernel del visualizador de páginas ha sido
reprogramado pero basandose en la misma idea con lo que se ha conseguido
un rendimiento muchísimo mayor a pesar del cambio a un modo gráfico mucho
mayor (me consta que incluso en un 386 se consigue una velocidad aceptable).
La idea de este kernel consiste ni más ni menos en pre-generar las páginas
antes de mostrarlas (esto es muy rápido, décimas de segundo) dejandolas en
memoria XMS para luego ir trayendo los trozos necesarios directamente a la
memoria de video.
El programa ocupa bastante poco, no llega a los 5Kb, pero el sistema de
sonido (que dice que ha sido programado en assembler, aunque no se que
pensar) hace que el ejecutable crezca más de 20Kb además de usar unos
drivers que ocupan tambien lo suyo. El código fuente (módulos .ASM) ocupan
120Kb y constan de unas 3500 líneas de código sin incluir el player lo
cual, en realidad, no es mucho.
9. Garantia, contacto y licencia de uso.
Esta es la típica y aburrida parte en la que te digo que no me hago
responsable de lo que hagas con este programa, que si formateas tu orde-
nador o "casualmente" se borra Güindous no te lo voy a reparar ni nada de
eso y que si quieres contactar ahí va mi dirección:
Ivan Gadea Saez navidj@moon.inf.uji.es
Crt\ Lliria, 57 http://moon.inf.uji.es/~phymosys
46191 Vilamarxant
Valencia
Prefiero los contactos por e-mail, pero si no tienes me mandas una carta
por el método antigüo... ahh sí! que casi se me olvida que no puedes
modificar este programa ni decir que lo has programado tu ni nada de eso
sin mi permiso escrito (iba a decir todo el rollo ese de que sino emprenderé
acciones legales, etc, etc, ¿pero quien se lo iba a creer?).
Si quieres usar el programa para hacer otra revista, presentación o algo
así necesitarás mi permiso y un manual o algo así que explique como hacerlo
ya que la verdad es que soy bastante críptico :). Todo esto existe, pero no
es gràtis :-> Para todo aquel que quiera las 2 cosas (permiso y manual) el
precio es de 2000 pelas a no ser que escriba articulos en la Phy cuyo
precio será 0, "usease" grátis. Si aspiras a más y lo que quieres son los
fuentes, te van a costar, junto con el permiso para divulgar el ejecutable
(no los fuentes), el manual y el permiso para modificar esos fuentes,
5000 pelas (excepto a los miembros de PhyMosys que les sale de gorra).
Navi Dj / PhyMosys
PhyMosys Magazine VI